Online analytical processing (“OLAP”) may involve storing, retrieving, and processing multidimensional data. Typical OLAP operations such as rolling-up, drilling-down, and pivoting on a various dimensions of the data being analyzed. OLAP applications are often called upon to provide support for an interactive approach to analysis, wherein a user submits an initial query followed by various refinements, pivots, and drill-downs into different aspects of the data. Quick processing of OLAP queries enables an interactive approach to data analysis.
A typical approach to storing, retrieving, and processing data in OLAP applications involves the use of multidimensional tree structures. These have various properties that are well-suited to certain types of OLAP operations, such as those that involve spatial relationships or “nearest-neighbor” problems. There are, however, various drawbacks to storing OLAP data in a multidimensional tree. Examples of these drawbacks include duplication of data and the inefficient operation of column-centric operations such as aggregation and summation. Because of these drawbacks, multidimensional data is sometimes stored in a column-centric fashion. Storing data in a column-centric fashion may improve the performance of operations such as aggregation and summation, while at the same time degrading the performance of those operations to which multidimensional tree structures are typically well-suited.